#菱形 多层循环嵌套
row = eval(input('请输入菱形的行数：'))
while row % 2 == 0:  # 判断行数的奇偶性
    print('请重新输入菱形的行数：')
    row = eval(input('请输入菱形的行数：'))
# 输出菱形
top_row = (row + 1) // 2  # 上半部分的行数
# 上半部分
for i in range(1, top_row + 1):  # 外层循环5行
    # 倒三角形
    for j in range(1, top_row + 1 - i):
        print(' ', end='')
    # 1，3，5，7，，，等腰三角形，range(1,2),range(1,4),range(1,6).....
    for k in range(1, i * 2):
        print('*', end='')
    print()  # 当两个并列的for循环执行完成后，再换行

# 下半部分
bottom_row = row // 2
for i in range(1, bottom_row + 1):
    # 直角三角形
    for j in range(1, i + 1):
        print(' ', end='')
    # 倒三角
    for k in range(1, bottom_row * 2 - 2 * i + 2):  # 1-->range(1,6),2-->range(1,4),3-->range(1,2),
        print('*', end='')
    print()

#水仙花
# for i in range(1, 10):
#     for j in range(0, 10):
#         for k in range(0, 10):
#             if i * 100 + j * 10 + k == i ** 3 + j ** 3 + k ** 3:
#                 print(i * 100 + j * 10 + k)

#斐波那契数列
# a,b = 0,1
# for i in range(10):
#     a,b =b,a+b
#     print (a)

#100以内的质数
# i=2
# for i in range(2,100):  # 取i从2开始，2 最小的质数
# 	for j in range(2,i):     #j在i的范围内取，range区间取不到i，看i是否有其他因数
# 		if i%j==0:
# 			break
# 	else :
# 		print(i)


#九九乘法表
# for i in range(1, 10):
#     for j in range(1, i+1):
#         print(f'{j}x{i}={i*j}\t', end='')
#     print()

#100以内的完数
# 循环输出1到100之间的数  range():含头不含尾
# for i in range(1,101):
#     # 此时i代表1-100之间所有的数
#     # 定义和的初始值
#     sum = 0
#     # 构造数字的因子
#     for j in range(1,i):
#     #     因子:能被i整除的是i的因子
#         if i % j == 0:
#     #     只要是i的因子那么就相加
#             sum += j
#     # 如果 因子相加的和  等于i本身那么这个数就是完数
#     if sum == i:
#         print(f"{i}是完数")